有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用java从XML检索文本和标记

我有一个xml文件,如下所示:

<extended>
   <p>text A</p>
   <p>text B</p>
   <p>text C</p>
</extended>

使用Java,我想从扩展节点中提取文本和标记。因此,我的预期输出是:

<p>text A</p>
<p>text B</p>
<p>text C</p>

以下是我目前的代码:

String textString;
NodeList extendedNodeList = XYZ.getElementsByTagName("extended");
if(extendedNodeList !=null && extendedNodeList.getLength() == 1) {
    Node subChildNode = extendedNodeList.item(0);
    if(subChildNode.getNodeType() == Node.ELEMENT_NODE)
        textString = subChildNode.getTextContent();
}

但是,这会去掉标签,给我留下:

text A
text B
text C

如何在<p>标记中离开?任何帮助都将不胜感激:)

A


共 (1) 个答案

  1. # 1 楼答案

    这会解决你的问题

    NodeList extendedNodeList = XYZ.getElementsByTagName("extended");
    if(extendedNodeList !=null && extendedNodeList.getLength() == 1) {
        Node extendedNode = extendedNodeList.item(0);
        if (extendedNode.hasChildNodes()) {
            NodeList childNodes = extendedNode.getChildNodes();
            for (int i = 0; i < childNodes.getLength(); i++) {
                Node pNode = childNodes.item(i);
                if(pNode.getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element)pNode;
                    System.out.println("<" + element.getTagName() + ">" + element.getTextContent() + "</" + element.getTagName() + ">");
                }
            }
        }
    }